// 引入模块
const http = require("http");
const fs = require("fs");
const path = require("path");
const qs = require("querystring");

// 创建http服务
const server = http.createServer((req, res) => {
    // 获取 请求 url 与 method 请求方法
    const {
        url,
        method
    } = req;
    // 获取文件路径
    const filePath = path.join(__dirname, "db/list.json");
    // 内容字符串
    let result = "";
    // 判断请求类型 与 请求路径
    if (method === "POST" && url === "/add") {
        // console.log('post');
        // 接收到数据后触发
        req.on("data", (chunck) => {
            // console.log(chunck);
            result += chunck;
            // console.log(qs.parse(result));

        })

        // 完成数据接收后触发，仅执行一次回调
        req.on("end", () => {
            // 转换buffer对象为 普通对象
            let newObj = qs.parse(result);
            // 读取文件，转换从数组对象
            let content = JSON.parse(fs.readFileSync(filePath, 'utf8'));
            // console.log(content);
            // 从内容后面添加新对象
            content.push({
                "name": newObj.name
            });
            // 写入新内容
            fs.writeFileSync(filePath, JSON.stringify(content));
            // 结束，输出值
            res.end("post ok");
        })
    } else {
        // 当客户端与服务端连接失败是，设置状态为 404
        res.statusCode = 404;
        res.end("404");
    }
})
// 监听8001端口事件
server.listen(8001, () => {
    console.log('ok');
})